package cn.wen.xframe.globle;

import org.apache.log4j.Logger;

import cn.wen.bases.framework.struts.action.BaseAction;
import cn.wen.bases.framework.struts.action.model.BaseModel;

/**
 * Title：服务器错误处理Action
 * <p>
 * Description：各种常见错误代码处理。
 * <p>
 * Copyright：Copyright (c) 2010-2012
 * 
 * @author <a href="mailto:ct_wen@qq.com">ctwen</a>, 温承瑭
 * @version Revision：1.0 Date：2012/4/22 Description：初完成。
 *          <p>
 * @deprecated {已交给WEB容器处理}
 */
public class ServerErrorAction extends BaseAction {
    
    private BaseModel model = new BaseModel();

    @Override
    public Object getModel() {
	return model;
    }

    private final Logger log = Logger.getLogger(getClass());

    private int code = 404;

    @Override
    public String execute() throws Exception {
	log.warn("接收到服务器错误代码：" + code + "；开始处理。");
	switch (code) {
	case 401:
	    /**
            401.1 Logon failed（登录失败）
            401.2 Logon failed due to server configuration（由于服务器配置，登录失败）
            401.3 Unauthorized due to ACL on resource（由于资源上的 ACL，未授权）
            401.4 Authorization failed by filter（由于筛选器，授权失败）
            401.5 Authorization failed by ISAPI/CGI application （由于 ISAPI/CGI 应用程序，授权失败）
	     */
	    return "401";
	case 403:
	    /**
            403.1 Execute access forbidden（执行访问被禁止）
            403.2 Read access forbidden（读取访问被禁止）
            403.3 Write access forbidden（写入访问被禁止）
            403.4 SSL required（要求 SSL ）
            403.5 SSL 128 required（要求 SSL 128）
            403.6 IP address rejected （IP 地址被拒绝）
            403.7 Client certificate required（要求客户证书）
            403.8 Site access denied（站点访问被拒绝）
            403.9 Too many users（用户太多）
            403.10 Invalid configuration（无效的配置）
            403.11 Password change（密码更改）
            403.12 Mapper denied access（映射程序拒绝访问）
            403.13 Client certificate revoked（客户证书被取消）
            403.14 Directory listing denied（目录列表被拒绝）
            403.15 Client Access Licenses exceeded（超出客户访问许可证）
            403.16 Client certificate untrusted or invalid（客户证书不受信任或无效）
            403.17 Client certificate has expired or is not yet valid（客户证书已过期或无效）
	     */
	    return "403";
	case 404:
	    /**
            404 Not found（没有找到）
            404.1 Site not found（站点没有找到）
	     */
	    return "404";
	case 500:
	    /**
            500 Internal server error（内部服务器错误）
            500.12 Application restarting（应用程序重新启动）
            500.13 Server too busy（服务器太忙）
            500.15 Requests for Global.asa not allowed（不允许请求 Global.asa）
	     */
	    return "500";
	case 503:
	    return "503";
	default:
	    log.warn("暂未支持  code:[" + code + "] 错误代码处理！转为404处理。");
	    return "404"; // 404为缺省处理。
	}
    }

    public int getCode() {
	return code;
    }

    public void setCode(int code) {
	this.code = code;
    }

}
